/**
 * 轨迹回放
 */
import { get } from '@/service/request'

// 车辆轨迹数据查询
export function getCarDataList(data: VehicleTrackQuery) {
  return get<VehicleTrackData[]>('/lxdd/trackReplay/carTraceData.html', data)
}

// 查询车辆停车记录
export function getCarParkRecord(data: VehicleTrackQuery) {
  return get<ParkRecordData[]>('/lxdd/trackReplay/carParkRecord.html', data)
}

// 根据车牌号模糊查询设备数据
export function getDeviceByCarNumber(carNumber: string) {
  return get<CarOptionData[]>('/lxdd/trackReplay/obtainDeviceInfo.html', { carNumber })
}

export interface VehicleTrackQuery {
  deviceId?: string
  startTime?: string
  endTime?: string
}

/** 车辆轨迹对象 */
export interface VehicleTrackData {
  /** 设备编码 */
  deviceId?: string
  /** 重量 */
  weight?: string
  /** 经度 */
  lng?: string | number
  /** 纬度 */
  lat?: string | number
  /** 车速 */
  speed?: number
  /** 方向角 */
  course?: string
  /** 流水号 */
  packageNum?: string
  /** GPS采集时间 */
  gpsTime?: string
  /** 上传时间 */
  uploadTime?: string
  /** 警报标志 */
  warnBit?: string
  /** 状态 */
  statusBit?: string
  /** ACC状态：0：ACC关 1：ACC开 */
  accStatus?: string
  /** 定位状态：0：未定位 1：定位 */
  locateStatus?: string
  /** 使用GPS卫星定位 0：未使用 1：使用 */
  useGps?: string
  /** 使用北斗卫星定位 0：未使用 1：使用 */
  useBds?: string
  /** 紧急报警 0：无 1：有 */
  warnAlarm?: string
  /** 用于坐标点分组 */
  speedIndex?: number
  /** 时间 */
  date?: string
  /** 上传时间 */
  uploadDate?: string
}

export interface ParkRecordQuery extends VehicleTrackQuery {
  carNumber?: string
  time?: number
}

/** 停车记录对象 */
export interface ParkRecordData {
  /** 地址 */
  address?: string
  /** 车牌号 */
  carNumber?: string
  /** 设备ID */
  deviceId?: string
  /** 经度 */
  lng?: string
  /** 纬度 */
  lat?: string
  /** 停车结束时间 */
  parkOverTime?: string
  /** 停车开始时间 */
  parkStartTime?: string
  /** 停车时长 */
  time?: string
}

/** 模糊搜索车辆列表对象 */
export interface CarOptionData {
  id?: string
  /** 车牌号 */
  carNumber?: string
  /** 设备ID */
  deviceId?: string
  /** 搅拌站编号 */
  mixingStationCode?: string
  /** 搅拌站名称 */
  mixingStationName?: string
}
